Java basic

Java’s data type
byte 정수형 문자형 실수형 논리형
1 byte boolean
2 short char
4 int float
8 long double
문자열 : String(class)
Only in local variables can use ‘var’ (after Java version 10)
when define long integer
integer over int(4byte) range have to add L or l(float aloso)
Java does not has unsigned data type->char can’t represent minus integer
Java string base on UNICODE(2byte)-'UTF-16'
http://www.unicode.org/charts/PDF/UAC00.pdf
Korean UNICODE
long lnum=12345678900L;
float fnum=3.14F;
define constant(final)
final double PI=3.14
final int MAX_NUM=100;
shift operation distintic with C
C
unsigned long int -> logical shift
signed long int     -> arithmetic shift

Java
no matter type >>    -> arithmetic shift
                          >>>  -> logic shift
because Java don’t has unsigned data type
자바의 연산자 및 연산자 우선순위
Java’s note
// this note is for only one sentece
/* this noe
is for
sentences */
Acess modifier(접근 제어자)
AcessModifier explain
public 외부 클래스 어디에서나 접근할 수 있습니다.
protected 같은 패키지 내부와 상속 관계의 클래스에서만 접근할 수 있고, 그 외 클래스에서는 접근할 수 없습니다.
private 같은 클래스 내부에서만 접근할 수 있습니다.
- default이며 같은 패키지 내부에서만 접근할 수 있습니다.
Variables
변수유형 선언위치 사용범위 메모리
지역변수(local) 함수 내부 함수 내부 스택
멤버변수(instance) 클래스 멤버 변수로 선언 클래스 내부(if not private 다른 클래스에서 가능)
Static변수(class) static 예약어를 사용하여 클래스 내부에서 선언 "" 데이터
static 변수는 모든 인스턴스가 공유하여 사용
Design pattern
design pattern is design to make effective program for object oriented programming language
example for Singleton patter
Singleton pattern
singleton pattern is by useing static makes only one instance methods
Company.java
package singleton;
public class Company {
private static Company instance=new Company();
private Company(){}
public static Company getInstatnce() {
if(instance==null){
instance=new Company();
}
return instance;
}
}
CompanyTest.java
package singleton;
public class CompanyTest {
public static void main(String[] args){
Company myCompany1=Company.getInstance();
Company myCompany2=Company.getInstance();
System.out.println(myCompany1==myCompany2);
}
}
Java making array
Java has two methods to make array
자료형[] 배열이름=new 자료형[개수];
자료형 배열이름[]=new 자료형[개수];
int[] studentIDs=new int[10];
/* arrayname stdentIDs has 4bytesX10 total 40bytes */
int[] studentIDs2=new int[]{101,102,103};
int[] studentIDs2={101,102,103}
/* arrayname studentIDs has been initialize
above two expression execution as same
for first expression must omit arrays count */
int[] studentIDs3;
studentIDs3=new int[]{101,102,103};
/* when define array first can not omit 'new int' */
enhanced for loop
after java version 5 can use enhanced for loop
enhanced for loop is comvenient at array loop
for(변수:배열){
    반복 실행문;
}
package array;
public class EnhancedForLoop{
public static void main(String[] args){
String[] strArray={"Java","C","Python","C++","Assembly"};
for(String lang:strArray){ /* at variables 'lang' saved each array parts */
System.out.println(lange);
}
}
}

Java

C

Python

C++

Assembly